package per.hnvcam.hedge.algebra;

import per.hnvcam.common.OrderedSet;

import java.util.Comparator;

public interface Hedge2AlgebraDefinition {
    OrderedSet<String> getDomainOfLength(int k);

    OrderedSet<String> getAllTermsOfLength(int k);

    void setPositiveG(String positiveG);

    String getPositiveG();

    void setNegativeG(String negativeG);

    String getNegativeG();

    void setPositiveH(String positiveH);

    String getPositiveH();

    void setNegativeH(String negativeH);

    String getNegativeH();

    void setFunctionMeterValue(String term, double functionMeterValue);

    double getFunctionMeterValue(String term);

    int getSign(String compound);

    boolean checkForConsistency();

    double getAlpha();

    double getBeta();

    String getNeutral();

    Comparator<String> getComparator();

    void clearCache();
}
